<html>

<head>
<title>Explay Engine CMS - документация</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<style type="text/css" media="all">
.paragraph { padding-left: 40px; }
</style>


</head>

<body vlink="blue" link="blue">
<h1>Explay Engine CMS - документация</h1>
<small>Данная версия документации является неполной, может содержать различные ошибки, в том числе
относящиеся к правдивости информации.</small>

<h1>Оглавление</h1>

<ol>
	<li><a href="#1">Программная среда</a>
      <ol>
        <li><a href="#1.1">Принцип работы</a></li>
        <li><a href="#1.2">Главные файлы и папки</a></li>
        <li>Встроенные функции</li>
        <li>Объект базы данных</li>
        <li>Объект шаблонов</li>
        <li>Создание модуля</li>
        <li>Защита и обработка ошибок.</li>
      </ol>
	</li>
</ol>


<br /><br /><h1>Основные термины</h1>

<!-- PARAGRAPH -->
<div class="paragraph">

<p><strong>Модуль</strong> - группа файлов с программным кодом, обеспечивающих взаимодействие базы данных и
пользователей.</p>

<p><strong>Плагин</strong> - файл, подключаемый до вывода контента (для служебных задач).</p>

<p><strong>Панель</strong> - участок страницы (сверху или снизу основного содержания), создаваемый и изменяемый
в панели администратора. Благодаря широким настройкам может использоваться на определенных страницах для объявлений
или рекламы.</p>

<p><strong>Блок</strong> - участок страницы  сайта (спава или слева), создаваемый и изменяемый в панели
администратора. Используется для вывода информации, которая должна присутствовать на страницах, определенных в настройках или для
рекламных объявлений.</p>

</div>


<a name="1"></a><br /><h1>1. Программная среда</h1>

<a name="1.1"></a><h2>1.1 Принцип работы</h2>

<!-- PARAGRAPH -->
<div class="paragraph">

<p>Для удобства система разбита на определенное количество файлов, в последствие подключающихся в главный.
В каждом файле находится код, предназначенный для выполнения своего рода задач. Существует три типа файлов:
<ol>
	<li><strong>Программные.</strong> Эти файлы содержат непосредственно PHP код программы. Они, в свою очередь,
		абстрактно разделяются на файлы принадлежащие ядру системы, хранилища функций и классов и модульные файлы.
		Они имеют расширение <strong>.php</strong>.</li>
	<li><strong>Шаблоны.</strong> В этих файлах, находящихся в специальной папке, хранится только HTML код,
		ипользуйщийся как шаблон при построении страниц сайта. Они имеют расширение <strong>.tpl</strong>.</li>
	<li><strong>Служебные.</strong> Это могут быть текстовые документы, файлы шрифтов и некоторые изоображения.</li>
</ol>
</p>
<p>В основе построения сайта исполузуется модульный принцип: в главный файл подключаются несколько необходимых
хранилищ функций и файлы модуля. Модуль же, помомо собственных функций, активно использует готовые решения.
Именно такой подход к организации работы системы позволяет быстро создавать новые модули и быстрые изменения.</p>

</div>



<br /><a name="1.2"></a><h2>1.2 Главные файлы и папки</h2>

<!-- PARAGRAPH -->
<div class="paragraph">

<h3>1.2.1 Главные файлы</h3>

<p><strong>/index.php</strong>, <strong>/modules.php</strong> и <strong>/admin.php</strong> - основные файлы
системы.
Они собирают все остальние файлы и отдают контент пользователю. Главные подключаемые файлы:
<a href="">/functions/connect.php</a>,
<a href="">/engine/functions.php</a>. Также подключаются модули и плагины, создаются панели блоки.</p>

<p><strong>/auth.php</strong> служит для авторизации пользователей.</p>

<p><strong>/image.php</strong> служит для вывода изоображений. Содержит несколько функций, в том числе вывод
аваторов.</p>

<p><strong>/thumbs.php</strong> служит для вывода уменьшенных копий иззображений. Пример обращения:
<em>http://site.ru/thumbs.php?x=number&y=number&url=image_url</em></p>

<p><strong>/api_engine.php</strong> - подпрограмма для работы API.</p>

<p><strong>/upload.php</strong> небольшая подпрограмма для загрузки файлов. Доступ к ней имеют только администраторы.</p>

<p><strong>/engine/functions.php</strong> - хранилище основных функций.</p>

<p><strong>/engine/connect.php</strong> - второй главный файл в системе. Служит для подключения к базе данных,
создания основных переменных (в том числе переменной $GLOBAL_USER) и начальные учет и проверка пользователя.</p>

<p><strong>/engine/templaes.class.php</strong> и <strong>/engine/mysql.class.php</strong> - основные объекты систеы.</p>

<p><strong>/engine/templates.php</strong> содержит основные фунции вывода HTML.</p>

<p><strong>/engine/settings.php</strong> - конфигурацонный файл, создающийся при установке. Содержит информацию
для доступа к БД.</p>



<br /><h3>1.2.2 Главные папки</h3>

<p><strong>/engine/</strong> - каталог с главными системными файлами и логами.</p>

<p><strong>/modules/</strong> служит для хранения модулей.</p>

<p><strong>/admin/</strong> хранит модули панели администатора. Обращение к этим модулям происходит через параметр
<strong>do</strong>,
пример: <em>/admin.php?do=settings</em> - подключит файл <em>/admin/settings.php</em></p>

<p><strong>/include/</strong> служит для хранения служебных и кешированных файлов.</p>

<p><strong>/themes/</strong> - каталог с шаблонами.</p>

<p><strong>/update/</strong> - каталог с файлом <em>update.php</em> для <a href="">обновления системы</a>.</p>

<p><strong>/api_engine/</strong> - каталог, где хранятся файлы для работы API.</p>

</div>


<br /><a name="1.3"></a><h2>1.3 Встроенные функции</h2>

<!-- PARAGRAPH -->
<div class="paragraph">

<strong>Список</strong>
<ul>
	<li><a href="#add_comment">add_comment</a></li>
	<li><a href="#print_comments">print_comments</a></li>
	<li><a href="#is_cached">is_cached</a></li>
	<li><a href="#cache_file">cache_file</a></li>
	<li><a href="#my_karma">my_karma</a></li>
</ul>

<p><strong><a name="add_comment"></a>add_comment ($name, $mail, $body, $category, $id, $code)</strong> добавляет комментарий к контенту <strong>$id</strong>.
<strong>$name</strong> - имя незарегистрированного пользователя, <strong>$mail</strong> - его e-mail, <strong>$body</strong>
- текст комментария, <strong>$category</strong> - латинское название модуля, <strong>$code</strong> - код с CAPTCHA.</p>

<p><strong><a name="print_comments"></a>print_comments ($category, $idi, $url, <em>[$sort]</em>)</strong> выводит комментарии. <strong>$category</strong>
- латинское название модуля, <strong>$idi</strong> - индентификатор контента к которому были добавлены комментарии,
<strong>$url</strong> - адрест страницы, на которой выводятся комментарии. <strong>$sort</strong> - необязательный параметр,
задающий порядок сортировки комментариев. Может принимать значение только <strong>DESC</strong>.</p>

<p><strong><a name="is_cached"></a>is_cached ($filename, $time)</strong> проверяет удволетворяет ли файл <strong>$filename</strong> (в папке
<em>/include/cache/</em>) сроку годности <strong>$time</strong> (в секундах). В случае если файл создан не раньше $time секунд назад,
то функция возвращает <em>true</em>, если раньше, то <em>false</em>.</p>

<p><strong><a name="cache_file"></a>cache_file ($filename, $content)</strong> создает (перезаписывает) файл с именем <strong>$filename</strong> (в папке
<em>/include/cache/</em>) и наполняет его контентом <strong>$content</strong>.</p>

<p><strong><a name="my_karma"></a>my_karma ()</strong> возвращает рейтинг текущего пользователя. Для незарегистрированных пользователей от равер 0.</p>

<p><strong><a name="user_status"></a>user_status ($id) возвращает картинку со статусом пользователя <strong>$id</strong>.</strong> </p>

<p><strong><a name="past_pages"></a>past_pages ($start, $number, $count, $url, <em>[$get_start_name, $after_url, $admin_panel]</em>)</strong> возвращает
список ссылок на страници. <strong>$start</strong> - начальный элемент, <strong>$number</strong> - количество элементов на странице,
<strong>$count</strong> - общее количество элементов, <strong>$url</strong> - базовый URL-адрес. Необязательные параметры:
<strong>$get_start_name</strong> - имя переменной страницы (по-умолчанию <em>page</em>, используется восновном в панели администратора или
для комментариев), <strong>$after_url</strong> - дополнительные GET-параметры. В случае установки <strong>$admin_panel</strong> равным
<em>true</em> URL-адрес будет изменен в формат панели администратора.</p>

<p><strong><a name=""></a><strong>is_registered ()</strong>, <strong>is_registered ()</strong> и <strong>is_registered ()</strong></strong> возвращают
<em>true</em>, еслитекущий пользователь принадлежит соответствующей группе.</p>

</div>

</body>

</html>